package com.qf.dao.impl;

import com.qf.dao.UserDao;
import com.qf.pojo.User;
import com.qf.utils.DataSourceConfig;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.SQLException;
import java.util.List;

public class UserDaoImpl implements UserDao {
    //DbUtils组件里面的一个核心类 主要是用来进行各种增删改查
    private QueryRunner runner = new QueryRunner(DataSourceConfig.getDataSource());
    /**
     * 查询所有用户信息
     * @return
     */
    public List<User> findAll() {
        String sql = "select * from user1";
        try {
            /**
             * 参数1 要执行的sql语句
             * 参数2  我们从数据库服务器里面查询出来的是一条条sql语句，我们在java后台肯定不能接收一条条sql语句
             *        怎么办? 把这一条条sql语句封装到List集合里面
             *        怎么封装? 使用一个DbUtils给我们提供的处理器来实现   BeanListHandler
             *             User.class 就是告诉BeanListHandler将一条条sql语句转换成List集合的时候，封装什么类型的数据
             *             放在list集合里面
             */
            List<User> list = runner.query(sql, new BeanListHandler<User>(User.class));
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return  null;
    }
}
